package com.geeksaga.dao;

import java.util.List;


import org.springframework.dao.DataAccessException;

import com.geeksaga.domain.User;

/**
 * @author newbie
 * @since 0.1
 */
public interface UserDao {
	
	/**
	 * @param user
	 * @return
	 * @throws DataAccessException
	 */
	public User add(User user) throws DataAccessException;
	
	/**
	 * @param user
	 * @return
	 * @throws DataAccessException
	 */
	public int modify(User user) throws DataAccessException;
	
	/**
	 * @param user
	 * @return
	 * @throws DataAccessException
	 */
	public User remove(User user) throws DataAccessException;
	
	/**
	 * @param user
	 * @return
	 * @throws DataAccessException
	 */
	public User find(User user) throws DataAccessException;
	
	/**
	 * @return
	 * @throws DataAccessException
	 */
	public List<User> selectList() throws DataAccessException;
	
	/**
	 * @param user
	 * @return
	 * @throws DataAccessException
	 */
	public List<User> findList(User user) throws DataAccessException;
	
	/**
	 * @return
	 * @throws DataAccessException
	 */
	public int count() throws DataAccessException;
	
	/**
	 * @param user
	 * @return
	 * @throws DataAccessException
	 */
	public User authenticate(User user) throws DataAccessException, Exception;
}